1. Field of the Invention
The present invention relates generally to a system and method of enabling a user to query a device when the device is within a home network and/or a secondary network. More particularly, in embodiments of the invention, the present invention relates to a system and method of enabling a user to, independently and without having to interact with primary and/or secondary network personnel, determine device availability, functionality and/or status, access device roaming history, and/or obtain device modem statistics when the device is within a home network and/or a secondary/complementary network.
2. Background Description
FIGS. 1–2 show a prior art method and apparatus for discovering devices on a network, as disclosed in U.S. Pat. No. 5,835,720, incorporated herein by reference. FIG. 1 shows a network 110 which includes first, second and third subnets S1, S2 and S3. The subnets S1, S2 and S3 can have the same topology or different topologies (e.g., Token ring, Ethernet, X.25 and FDDI). Devices 112, 114 and 116 are connected to the first subnet S1; devices 118, 120, 122 and 124 are connected to the second subnet S2; and devices 126, 128, 130, 132 and 134 are connected to the third subnet S3. The devices 112–134 can be workstations, personal computers, hubs, printers, etc. Additional devices on the network 110 include a first router 136 for interconnecting the first, second and third subnets S1, S2 and S3; and a second router 138 for connecting the second subnet S2 to other networks. The network 110 is scalable, which allows computing resources to be added as needed. Although only several devices 112–138 are shown, the network 110 can encompass up to tens of thousands of addressable devices.
TCP/IP is used to regulate how data is packeted into IP packets and transported between the devices 112–138. Each device 112–138 has a physical address and a unique Internet protocol (IP) address. The IP address includes a network number and a host number. The host number is broken down into a subnet part and a host part.
IP packets are sent from a source device on the first subnet S1 (device 12, for example) to a destination device on the first subnet S1 (device 114, for example). The IP packets contain the IP address of the destination device 114. The subnet part of the destination IP address indicates that the destination device 114 is local, so the source device 112 retrieves its local ARP (Address Resolution Protocol) table from its ARP cache. The ARP table is used for mapping the IP address onto a physical address. If the destination IP address is found on the ARP table, the source device 112 reads the physical address off the local ARP table, adds appropriate headers (including the physical address of the destination device 114) to the IP packets, and sends the resulting frame over the first subnet S1.
If the destination device 114 is not on the ARP table, the source device 112 issues an ARP request to locate the destination device 114. The ARP request includes the IP and physical addresses of the source device 112 and the IP address of the destination device 114. All devices receiving the ARP request check to see if their IP address matches the destination IP address in the ARP request. The destination device 114 makes a match and responds by returning its physical address to the source device 112. The source device 112 makes an entry for the destination device 114 in its ARP table (the entry including the physical address of the destination device 114), adds the physical address of the destination device 114 to the IP packets, and transmits the resulting frames over the first subnet S3.
IP packets are sent from the source device 112 to a destination device on the third subnet S3 (device 130). The subnet part of the destination IP address indicates that the destination device 130 is not local, so the source device 112 retrieves its local routing table from the ARP cache.
The local routing table contains information needed to route the IP packets to next-hop gateways. The information includes entries that indicate the next-hop routers by their IP addresses. At a minimum, the local routing table contains an entry for a default router. In this example, the default router is the first router 136. The routing table may also contain many other entries for other gateways on the network 110. The source device 112 forwards the IP packets to the first router 136.
The first router 136 receives the IP packets and retrieves an IP address table from its ARP cache. The IP address table includes an address for each interface. The IP address table includes IP address 129.144.74.1 for the first subnet S1, IP address 129.144.75.1 for the second subnet S2, and IP address 129.144.76.1 for the third subnet S3. By masking the destination IP address to obtain its subnet part (a mask from the IP address table is used) and comparing the masked IP address to the addresses in the IP address table, the first router 36 determines that the IP packets should be sent to the third subnet S3. The first router 136 looks at its ARP table (which was retrieved with the IP address table) for the physical address of the destination device 130. The first router 36 maintains an ARP table of the devices that have been active (i.e., communicating) over an interval (e.g., five minutes). If the destination IP address is not on its ARP table, the first router 136 issues an ARP request. After the destination device 130 is found, the first router 136 adds the destination physical address to the IP packets and transmits the resulting frames over the third subnet S3 to the destination device 130.
Had the destination IP address not fit in one of the subnets on the IP address table, the first router 136 would have checked its routing table (which was also retrieved with the IP address table) and forwarded the IP packets to the next-hop router (i.e., the second router 38).
The network 110 additionally includes a network manager 140, which is connected to the first subnet S1. Simple Network Management Protocol (SNMP) is used by the network manager 140 for managing the devices 112–138 that support SNMP. The devices 112–138 that do not support SNMP can be managed by a protocol such as ICMP. Each SNMP-manageable device stores in its memory a Management Information Base (MIB). The MIB is a collection of objects or variables representing different aspects of the device (e.g., configuration, statistics, status, control). Each device is associated with an agent, which is a software program that may or may not be resident in the device. The agents allow the network manager 40 to access the MIB of each SNMP-manageable device. Such accessibility allows the network manager 140 to perform its management tasks. For a general description of network management, see W. Stallings, “Data and Computer Communications”, MacMillan (4th ed., 1994) pp. 701–24, which is incorporated herein by reference.
FIG. 2 shows the network manager 140 in greater detail. The network manager 140 includes a workstation 142 such as a SPARCstation™ or SPARCserver™.
Both of these models use a RISC-based high-performance “SPARC” microprocessor 43. The SPARCstation™, SPARCserver™ and “SPARC” microprocessor are all commercially available from Sun Microsystems, Inc. The workstation 242 is configured with a color display monitor 244 and a CD ROM drive 246 for distribution media. It is also configured with volatile memory 248 such as DRAM and non-volatile memory 250 such as a hard drive.
The Network Manager 110 includes a “UNIX”-based operating system 252. The operating system 252 is stored on the network manager's hard drive 250.
Also stored on the hard drive 250 is software for directing the network manager 240 to perform its many tasks. The software includes a Graphical User Interface (GUI) 254, a network topology database 256 and a Discover program 258. Running the Discover program 258, the network manager 240 seeks out IP and SNMP-addressable devices on the network 110, and adds instances of discovered devices to the network topology database 256.
The Discover program 258 can be distributed on a portable computer memory medium, such as a CD ROM. Distributed as such, the CD ROM is inserted into the CD ROM drive 246 and the Discover program 258 is installed onto the hard drive 250. Instead of installing the Discover program 258 onto the hard drive 250, however, it can be accessed directly from the CD ROM drive 246.
The Discover program 258 can be run directly from the operating system 252. The location and name of the Discover program's executable file are typed in at the command line. Specifiers can also be typed in at the command line, or they can be provided in a configuration file. If no specifiers are typed in at the command line, default specifiers are used. The specifiers, which provide options for running and configuring the program, will be discussed below.
In the alternative, the Discover program 258 can be run from the GUI 254. A Discover program icon is double clicked, causing a Discover Properties dialog box to appear. The Discover Properties dialog box shows the current configuration of the Discover program, provides an option that allows the Discover program to be reconfigured with new specifiers, and a button for running the Discover program 58 as currently configured.
Reference is now made to FIG. 3, which shows the steps performed by the network manger 140 under the direction of the Discover program 258. The Discover program 258 offers a choice of searches: an ARP/Ping search, an ARP-only search, and a Ping search (step 300). One is selected. The ARP/Ping search is selected by default. If it is desired to perform either the ARP-only search or the Ping search, a specifier (e.g., -A or -P) is typed in at the command line or button (e.g., ARP-only button or Ping button) is clicked on in the Discover Properties dialog box.
The network manager 240 begins with the steps of building a hierarchical data structure of the network topology. The hierarchical data structure indicates networks, subnets for each network, and gateways, hosts and links (physical and logical) for each subnet. The data structure stored in non-volatile memory 250. To build the hierarchical data structure, the network manager 240 accesses its IP address table and local routing table in its ARP cache (step 302). IP addresses in the IP address table, which are used to identify the subnets, are added to the hierarchical data structure (step 304). The local routing table is used to identify a default router. The local routing table might also identify additional gateways. IP addresses of the default router and any other gateways are added to the hierarchical data structure (step 306).
The IP addresses of the routers are also added to a Gateway list, which can be stored in computer memory (not shown). Before a gateway is saved in the Gateway list, however, the network manager 240 performs a traceroutes operation to determine the number of hops to that gateway (step 308). Each gateway that a packet must traverse is counted as a hop. The traceroutes operation also identifies physical and logical links, which are added to the hierarchical data structure (step 310). If a gateway is within a “Maximum Hops” threshold, its IP address is appended to the Gateway list (step 312). By default, the Maximum Hops threshold is set to zero so that only the local ARP cache is accessed.
If the Maximum Hops threshold is greater than zero (step 314), the network manager 40 retrieves the routing table, IP address table and ARP table of the default router using a series of SNMP Get_Next messages (step 316). The default router's IP address table indicates the IP addresses of the subnets S2 and S2 and any other interfaces. IP addresses of the interfaces are added to the hierarchical data structure (step 318). The default router's routing table identifies other gateways, which are added to the hierarchical data structure. Only IP addresses of those gateways within the Maximum Hops threshold are appended to the Gateway list (step 320).
If the default router does not support SNMP, the network manager 240 can use the traceroutes operation to find additional gateways. If additional gateways are found, their IP address tables, routing tables and ARP tables are retrieved. Gateways within the Maximum Hops threshold are appended to the Gateway list.
The network manager 240 then proceeds down the Gateway list. Routing tables, IP address tables and ARP tables of the next entry on the Gateway list are retrieved (step 322). Newly-discovered networks, subnets and gateways are added to the hierarchical data structure (step 324), and newly-discovered gateways within the Maximum Hops threshold are appended to the Gateway list (step 326). By appending newly discovered gateways to the Gateway list and advancing down the Gateway list, the network manager 240 leapfrogs from gateway to gateway, identifying even more routers, subnets and networks. Once the network manager 240 has reached the end of the Gateway list (step 328), it has completed the construction of the hierarchical data structure.
The steps 302–328 of building the hierarchical data structure can be skipped or modified if a Search file containing specific gateways is made accessible to the Discover program 258. The gateways in the Search file are identified by their IP addresses. If a specifier (e.g., “ONLY”) is provided in the Search file, the search is limited only to those gateways specified in the Search file. If the specifier is omitted, the search begins with those gateways specified in the Search file and then continues with the search above, accessing routing tables and IP address tables from all gateways within the Maximum Hops threshold. Any gateway that is unreachable is ignored. The name of the Search file can be entered on the command line of the operating system or through the Discover Properties dialog box of the GUI 254.
After the hierarchical data structure has been built, the network manager 240 performs a search. If the Ping search is selected (step 330), the network manager 240 sends ICMP echo request messages over the network 10 (step 332). The network manager 240 can be programmed to send out the ICMP echo request messages to all addresses on the network in a conventional manner.
If either the ARP/Ping or the ARP-only search is selected, the network manager 240 retrieves its local ARP, IP address and routing tables using UNIX system calls (step 334). Then, using SNMP requests, the network manager 240 retrieves the ARP tables from all gateways listed in the Gateway list (step 336). For example, the network manager 240 might find the following ARP table from the first router 136:
DeviceIP addressIP NameMaskPhys Addr16129.144.74.1udmpk16c-74255.255.255.25500:40:0b:40:76:1d12129.144.74.5dakota-74255.255.255.25500:40:0b:40:f6:4514129.144.74.34cicada-74255.255.255.25500:40:0b:40:f6:4320129.144.75.12certo255.255.255.25508:00:20:76:a3:9f22129.144.75.15emp255.255.255.25508:00:20:10:2c:e724129.144.75.114measures-74255.255.255.25508:00:20:76:78:37
The network manager 240 immediately saves the IP addresses from the ARP table in the hierarchical data structure (step 338). The network manager 240 can also ping each device that it finds in the ARP table (step 340). This step is performed for IP address verification purposes.
The network manager 240 also immediately classifies the devices (step 342) and updates the network topology database 256 with the classified devices (step 344).
Classification can be performed by reading the device's SNMP system description (e.g., sysobject ID) and mapping the system description to a particular device class. The network topology database 256 is essentially an internal hierarchy of data structure files and instance files. The data structure files include structures of devices, views (collections of devices), buses (e.g., a Token Ring Local Area Network (LAN) segment) and connections (e.g., an RS-232 link). The network manager 240 polls the MIB of each discovered device for system information. The system information is passed to an Applications Program Interface (API) which, using basic API calls, creates instance files of the data structures and adds the instance files to the network topology database 256.
If the ARP-only search was selected (step 346), the network manager 240 might try to identify hosts (step 348). If the ARP/Ping search is selected, the network manager 240 performs a more exhaustive search on the network, sending ICMP echo request messages to the remaining addresses of the subnets listed in the Hierarchy file (step 350). The ICMP echo request messages can be sent in a conventional manner.
Thus, U.S. Pat. No. 6,137,791 is directed to voice communication between a first data packet network using a MIM and a second data packet network utilizing a Personal Digital Cellular Mobility Method (PMM). We have determined that there is a need for a mechanism that enables users to independently, optionally without assistance from primary and/or secondary wireless network personnel, determine availability, functionality and/or status of a wireless device, access device roaming history and/or obtain device modem statistics when the queried device is operating within a home network or a secondary/complementary network. Accordingly, there is also a need for a system and method that enables a user to query a wireless device in such a manner.